import Vue from  "vue"
import Vuex from  "vuex"

Vue.use(Vuex) //全局声明使用vuex
//每一个Vuex应用的核心就是store
//不能直接改变store的状态 改变store中的状态的唯一途径就是显试的提交(commit) mutations
const store = new Vuex.Store({
  // 全局的状态
  state: {
    count:1000,
    city:'四川广安赵子龙',
    world:'今夜不睡觉',
    message:'你猜我猜不猜',
    msg:"wh2110-daydayup",
  },
  // 唯一修改数据的地方 
  getters: {
    newCount(state){
      return state.count *10 +8888
    }
  },
  // 动作信号
  mutations: {
    // 只能进行同步操作
    countAdd(state){
      state.count ++
    },
    countDel(state){
      state.count--
    },
    changenworld(state,payload){
      state.world = payload 
    },
    changeMsg(state,payload){
      state.message = payload 
    },
    changeMessage(state,payload){
      state.message=payload
    }
  },
  // 依赖state 返回新的状态
  actions: {
    // Action 可以包含异步操作
    // Action 必须提交commit mutation
     changeMessageAction(context,payload){//context={commit：func(){}}
      context.commit('changeMessage',payload)
      //commit("changeMessage")
     } 
  }
})
export default store